home *** CD-ROM | disk | FTP | other *** search
- /*
- * Source machine generated by GadToolsBox V2.0
- * which is (c) Copyright 1991-1993 Jaba Development
- *
- * GUI Designed by : Jan van den Baard
- */
-
- #include <exec/types.h>
- #include <intuition/intuition.h>
- #include <intuition/classes.h>
- #include <intuition/classusr.h>
- #include <intuition/imageclass.h>
- #include <intuition/gadgetclass.h>
- #include <libraries/gadtools.h>
- #include <graphics/displayinfo.h>
- #include <graphics/gfxbase.h>
- #include <clib/exec_protos.h>
- #include <clib/intuition_protos.h>
- #include <clib/gadtools_protos.h>
- #include <clib/graphics_protos.h>
- #include <clib/utility_protos.h>
- #include <string.h>
- #include <clib/diskfont_protos.h>
-
- #include "compiler.h"
-
- #include "project.h"
-
- struct Window *CompilerWnd = NULL;
- struct Window *LinkerWnd = NULL;
- struct Gadget *CompilerGList = NULL;
- struct Gadget *LinkerGList = NULL;
- struct IntuiMessage CompilerMsg;
- struct IntuiMessage LinkerMsg;
- UWORD CompilerZoom[4];
- UWORD LinkerZoom[4];
- struct Gadget *CompilerGadgets[15];
- struct Gadget *LinkerGadgets[7];
- UWORD CompilerLeft = 76;
- UWORD CompilerTop = 146;
- UWORD CompilerWidth = 547;
- UWORD CompilerHeight = 259;
- UWORD LinkerLeft = 183;
- UWORD LinkerTop = 226;
- UWORD LinkerWidth = 384;
- UWORD LinkerHeight = 104;
- UBYTE *CompilerWdt = (UBYTE *)"Project Handler : Compiler Options";
- UBYTE *LinkerWdt = (UBYTE *)"Project Handler : Linker Options";
- struct Window *GenOptWnd = NULL;
- struct Gadget *GenOptGList = NULL;
- struct IntuiMessage GenOptMsg;
- UWORD GenOptZoom[4];
- struct Gadget *GenOptGadgets[5];
- UWORD GenOptLeft = 185;
- UWORD GenOptTop = 150;
- UWORD GenOptWidth = 335;
- UWORD GenOptHeight = 88;
- UBYTE *GenOptWdt = (UBYTE *)"Project Handler : Main Options";
-
- UBYTE *Type1Labels[] = {
- (UBYTE *)"Executable",
- (UBYTE *)"Library",
- (UBYTE *)"Romable",
- NULL };
-
- struct IntuiText GenOptIText[] = {
- 1, 0, JAM1,167, 49, NULL, (UBYTE *)".", NULL };
-
- #define GenOpt_TNUM 1
-
- UWORD GenOptGTypes[] = {
- CYCLE_KIND,
- SLIDER_KIND,
- SLIDER_KIND
- BUTTON_KIND,
- BUTTON_KIND
- };
-
- struct NewGadget GenOptNGad[] = {
- 155, 7, 164, 14, (UBYTE *)"Final Object _Type :", NULL, GD_Type, PLACETEXT_LEFT, NULL, (APTR)GenTypeClicked,
- 14, 42, 130, 15, (UBYTE *)"OS _Version", NULL, GD_Ver, PLACETEXT_ABOVE, NULL, (APTR)VerClicked,
- 191, 42, 130, 15, (UBYTE *)"OS _Revision", NULL, GD_Rev, PLACETEXT_ABOVE, NULL, (APTR)RevClicked
- 46, 66, 102, 14, NULL, NULL, GD_GenOptUse, PLACETEXT_IN, NULL, (APTR)GenOptUseClicked,
- 195, 66, 102, 14, NULL, NULL, GD_GenOptCancel, PLACETEXT_IN, NULL, (APTR)GenOptCancelClicked
- };
-
- ULONG GenOptGTags[] = {
- (GTCY_Labels), (ULONG)&Type1Labels[ 0 ], (GT_Underscore), '_', (TAG_DONE),
- (GTSL_Min), 1, (GTSL_Max), 9, (GTSL_Level), 2, (GTSL_MaxLevelLen), 4, (GTSL_LevelFormat), (ULONG)"%2ld", (GTSL_LevelPlace), (PLACETEXT_RIGHT), (PGA_Freedom), LORIENT_HORIZ, (GA_RelVerify), TRUE, (GT_Underscore), '_', (TAG_DONE),
- (GTSL_Max), 9, (GTSL_MaxLevelLen), 4, (GTSL_LevelFormat), (ULONG)"%2ld", (PGA_Freedom), LORIENT_HORIZ, (GA_RelVerify), TRUE, (GT_Underscore), '_', (TAG_DONE),
- (GT_Underscore), '_', (TAG_DONE),
- (GT_Underscore), '_', (TAG_DONE)
- };
-
- UBYTE *CPU0Labels[] = {
- (UBYTE *)"680_00/010",
- (UBYTE *)"680_20",
- (UBYTE *)"680_30",
- NULL };
-
- UBYTE *FPU0Labels[] = {
- (UBYTE *)"_None",
- (UBYTE *)"_68881",
- (UBYTE *)"6_8882",
- NULL };
-
- UBYTE *Code0Labels[] = {
- (UBYTE *)"_Small",
- (UBYTE *)"_Large",
- NULL };
-
- UBYTE *Data0Labels[] = {
- (UBYTE *)"S_mall",
- (UBYTE *)"Larg_e",
- NULL };
-
- UBYTE *Calls0Labels[] = {
- (UBYTE *)"_Registerized",
- (UBYTE *)"_Trough Stack",
- NULL };
-
- UBYTE *HunkCode0Labels[] = {
- (UBYTE *)"_Only constants",
- (UBYTE *)"Bot_h constants and strings",
- (UBYTE *)"Constant, string and _PC Relative",
- NULL };
-
- UBYTE *Profile0Labels[] = {
- (UBYTE *)"Disable Profilin_g",
- (UBYTE *)"Source code onl_y",
- (UBYTE *)"Source code and all li_braries",
- NULL };
-
- struct IntuiText CompilerIText[] = {
- 2, 0, JAM2,100, 7, NULL, (UBYTE *)" Code Generation ", NULL,
- 2, 0, JAM2,242, 7, NULL, (UBYTE *)" Code Model ", NULL,
- 2, 0, JAM2,342, 7, NULL, (UBYTE *)" Data Model ", NULL,
- 2, 0, JAM2,465, 7, NULL, (UBYTE *)" Procedure Call ", NULL,
- 2, 0, JAM2,119, 79, NULL, (UBYTE *)" Constant Hunk Code Content ", NULL,
- 2, 0, JAM2,385, 79, NULL, (UBYTE *)" Profiling Options ", NULL,
- 2, 0, JAM2,250, 153, NULL, (UBYTE *)" Diverse Compiling Options ", NULL };
-
- #define Compiler_TNUM 7
-
- UWORD CompilerGTypes[] = {
- MX_KIND,
- MX_KIND,
- MX_KIND,
- MX_KIND,
- MX_KIND,
- MX_KIND,
- CHECKBOX_KIND,
- CHECKBOX_KIND,
- CHECKBOX_KIND,
- CHECKBOX_KIND,
- CHECKBOX_KIND,
- CHECKBOX_KIND,
- MX_KIND,
- BUTTON_KIND,
- BUTTON_KIND
- };
-
- UWORD LinkerGTypes[] = {
- BUTTON_KIND,
- BUTTON_KIND,
- CHECKBOX_KIND,
- CHECKBOX_KIND,
- CHECKBOX_KIND,
- CHECKBOX_KIND,
- CHECKBOX_KIND
- };
-
- struct NewGadget CompilerNGad[] = {
- 20, 19, 17, 9, NULL, NULL, GD_CPU, PLACETEXT_RIGHT, NULL, (APTR)CPUClicked,
- 117, 19, 17, 9, NULL, NULL, GD_FPU, PLACETEXT_RIGHT, NULL, (APTR)FPUClicked,
- 214, 27, 17, 9, NULL, NULL, GD_Code, PLACETEXT_RIGHT, NULL, (APTR)CodeClicked,
- 311, 27, 17, 9, NULL, NULL, GD_Data, PLACETEXT_RIGHT, NULL, (APTR)DataClicked,
- 408, 27, 17, 9, NULL, NULL, GD_Calls, PLACETEXT_RIGHT, NULL, (APTR)CallsClicked,
- 20, 91, 17, 9, NULL, NULL, GD_HunkCode, PLACETEXT_RIGHT, NULL, (APTR)HunkCodeClicked,
- 37, 163, 26, 11, (UBYTE *)"_Inline Library Calls", NULL, GD_Inline, PLACETEXT_RIGHT, NULL, (APTR)InlineClicked,
- 300, 205, 26, 11, (UBYTE *)"C_++ style comments ( // )", NULL, GD_Gadget70, PLACETEXT_RIGHT, NULL, (APTR)Gadget70Clicked,
- 37, 184, 26, 11, (UBYTE *)"Prevent unprototyped _function calls", NULL, GD_Proto, PLACETEXT_RIGHT, NULL, (APTR)ProtoClicked,
- 37, 205, 26, 11, (UBYTE *)"Exe_cutable Residentable", NULL, GD_Resident, PLACETEXT_RIGHT, NULL, (APTR)ResidentClicked,
- 300, 163, 26, 11, (UBYTE *)"Generate _dynamic stack", NULL, GD_Dynamic, PLACETEXT_RIGHT, NULL, (APTR)DynamicClicked,
- 300, 184, 26, 11, (UBYTE *)"Debug Level _1", NULL, GD_DebugL, PLACETEXT_RIGHT, NULL, (APTR)DebugLClicked,
- 288, 91, 17, 9, NULL, NULL, GD_Profile, PLACETEXT_RIGHT, NULL, (APTR)ProfileClicked,
- 93, 234, 120, 19,NULL , NULL, GD_Use, PLACETEXT_IN, NULL, (APTR)CompilerUseClicked,
- 333, 234, 120, 19,NULL, NULL, GD_Cancel, PLACETEXT_IN, NULL, (APTR)CompilerCancelClicked
- };
-
- struct NewGadget LinkerNGad[] = {
- 13, 77, 120, 19, NULL, NULL, GD_Use, PLACETEXT_IN, NULL, (APTR)LinkerUseClicked,
- 253, 77, 120, 19, NULL, NULL, GD_Cancel, PLACETEXT_IN, NULL, (APTR)LinkerCancelClicked,
- 9, 7, 26, 11, (UBYTE *)"Force code in Ch_ip", NULL, GD_Chip, PLACETEXT_RIGHT, NULL, (APTR)ChipClicked,
- 9, 28, 26, 11, (UBYTE *)"Relocation _Hunks", NULL, GD_RelocHunk, PLACETEXT_RIGHT, NULL, (APTR)RelocHunkClicked,
- 9, 49, 26, 11, (UBYTE *)"Include _Debug Information", NULL, GD_DebugI, PLACETEXT_RIGHT, NULL, (APTR)DebugIClicked,
- 211, 7, 26, 11, (UBYTE *)"_Fragmented File", NULL, GD_Fragment, PLACETEXT_RIGHT, NULL, (APTR)FragmentClicked,
- 211, 28, 26, 11, (UBYTE *)"Use Unix _library", NULL, GD_UnixLib, PLACETEXT_RIGHT, NULL, (APTR)UnixLibClicked
- };
-
- ULONG CompilerGTags[] = {
- (GTMX_Labels), (ULONG)&CPU0Labels[ 0 ], (GT_Underscore), '_', (TAG_DONE),
- (GTMX_Labels), (ULONG)&FPU0Labels[ 0 ], (GT_Underscore), '_', (TAG_DONE),
- (GTMX_Labels), (ULONG)&Code0Labels[ 0 ], (GT_Underscore), '_', (TAG_DONE),
- (GTMX_Labels), (ULONG)&Data0Labels[ 0 ], (GT_Underscore), '_', (TAG_DONE),
- (GTMX_Labels), (ULONG)&Calls0Labels[ 0 ], (GT_Underscore), '_', (TAG_DONE),
- (GTMX_Labels), (ULONG)&HunkCode0Labels[ 0 ], (GT_Underscore), '_', (TAG_DONE),
- (GT_Underscore), '_', (TAG_DONE),
- (GT_Underscore), '_', (TAG_DONE),
- (GT_Underscore), '_', (TAG_DONE),
- (GT_Underscore), '_', (TAG_DONE),
- (GT_Underscore), '_', (TAG_DONE),
- (GT_Underscore), '_', (TAG_DONE),
- (GTMX_Labels), (ULONG)&Profile0Labels[ 0 ], (GT_Underscore), '_', (TAG_DONE),
- (GT_Underscore), '_', (TAG_DONE),
- (GT_Underscore), '_', (TAG_DONE)
- };
-
- ULONG LinkerGTags[] = {
- (GT_Underscore), '_', (TAG_DONE),
- (GT_Underscore), '_', (TAG_DONE),
- (GT_Underscore), '_', (TAG_DONE),
- (GT_Underscore), '_', (TAG_DONE),
- (GT_Underscore), '_', (TAG_DONE),
- (GT_Underscore), '_', (TAG_DONE),
- (GT_Underscore), '_', (TAG_DONE)
- };
-
- void CompilerRender( void )
- {
- struct IntuiText it;
- UWORD cnt;
-
- ComputeFont( CompilerWidth, CompilerHeight );
-
- DrawBevelBox( CompilerWnd->RPort, OffX + ComputeX( 296 ),
- OffY + ComputeY( 7 ),
- ComputeX( 91 ),
- ComputeY( 62 ),
- GT_VisualInfo, VisualInfo, TAG_DONE );
- DrawBevelBox( CompilerWnd->RPort, OffX + ComputeX( 198 ),
- OffY + ComputeY( 7 ),
- ComputeX( 91 ),
- ComputeY( 62 ),
- GT_VisualInfo, VisualInfo, TAG_DONE );
- DrawBevelBox( CompilerWnd->RPort, OffX + ComputeX( 395 ),
- OffY + ComputeY( 7 ),
- ComputeX( 146 ),
- ComputeY( 62 ),
- GT_VisualInfo, VisualInfo, TAG_DONE );
- DrawBevelBox( CompilerWnd->RPort, OffX + ComputeX( 6 ),
- OffY + ComputeY( 7 ),
- ComputeX( 186 ),
- ComputeY( 62 ),
- GT_VisualInfo, VisualInfo, TAG_DONE );
- DrawBevelBox( CompilerWnd->RPort, OffX + ComputeX( 6 ),
- OffY + ComputeY( 79 ),
- ComputeX( 252 ),
- ComputeY( 62 ),
- GT_VisualInfo, VisualInfo, TAG_DONE );
- DrawBevelBox( CompilerWnd->RPort, OffX + ComputeX( 262 ),
- OffY + ComputeY( 79 ),
- ComputeX( 279 ),
- ComputeY( 62 ),
- GT_VisualInfo, VisualInfo, TAG_DONE );
- DrawBevelBox( CompilerWnd->RPort, OffX + ComputeX( 6 ),
- OffY + ComputeY( 153 ),
- ComputeX( 535 ),
- ComputeY( 75 ),
- GT_VisualInfo, VisualInfo, TAG_DONE );
-
- for ( cnt = 0; cnt < Compiler_TNUM; cnt++ ) {
- CopyMem(( char * )&CompilerIText[ cnt ], ( char * )&it, (long)sizeof( struct IntuiText ));
- it.ITextFont = Font;
- it.LeftEdge = OffX + ComputeX( it.LeftEdge ) - ( IntuiTextLength( &it ) >> 1 );
- it.TopEdge = OffY + ComputeY( it.TopEdge ) - ( Font->ta_YSize >> 1 );
- PrintIText( CompilerWnd->RPort, &it, 0, 0 );
- }
- }
-
- int HandleCompilerIDCMP( void )
- {
- struct IntuiMessage *m;
- int (*func)(void);
- BOOL running = TRUE;
-
- while( (CompilerWnd != NULL) && (m = GT_GetIMsg( CompilerWnd->UserPort )) ) {
-
- CopyMem(( char * )m, ( char * )&CompilerMsg, (long)sizeof( struct IntuiMessage ));
-
- GT_ReplyIMsg( m );
-
- switch ( CompilerMsg.Class ) {
-
- case IDCMP_REFRESHWINDOW:
- GT_BeginRefresh( CompilerWnd );
- CompilerRender();
- GT_EndRefresh( CompilerWnd, TRUE );
- break;
-
- case IDCMP_GADGETUP:
- case IDCMP_GADGETDOWN:
- func = ( void * )(( struct Gadget * )CompilerMsg.IAddress )->UserData;
- running = func();
- break;
- case IDCMP_VANILLAKEY:
- CompilerVanillaKey( CompilerMsg.Code );
- break;
- case IDCMP_RAWKEY:
- if ( CompilerMsg.Code == 95 )
- ChargeAide( "WIN_Compiler" );
- }
- }
- return( running );
- }
-
- int OpenCompilerWindow( void )
- {
- struct NewGadget ng;
- struct Gadget *g;
- UWORD lc, tc;
- UWORD wleft = CompilerLeft, wtop = CompilerTop, ww, wh;
-
- ComputeFont( CompilerWidth, CompilerHeight );
-
- ww = ComputeX( CompilerWidth );
- wh = ComputeY( CompilerHeight );
-
- if (( wleft + ww + OffX + Scr->WBorRight ) > Scr->Width ) wleft = Scr->Width - ww;
- if (( wtop + wh + OffY + Scr->WBorBottom ) > Scr->Height ) wtop = Scr->Height - wh;
-
- if ( ! ( g = CreateContext( &CompilerGList )))
- return( 1L );
-
- for( lc = 0, tc = 0; lc < Compiler_CNT; lc++ ) {
-
- CopyMem((char * )&CompilerNGad[ lc ], (char * )&ng, (long)sizeof( struct NewGadget ));
-
- ng.ng_VisualInfo = VisualInfo;
- ng.ng_TextAttr = Font;
- ng.ng_LeftEdge = OffX + ComputeX( ng.ng_LeftEdge );
- ng.ng_TopEdge = OffY + ComputeY( ng.ng_TopEdge );
- ng.ng_Width = ComputeX( ng.ng_Width );
- ng.ng_Height = ComputeY( ng.ng_Height);
-
- CompilerGadgets[ lc ] = g = CreateGadgetA((ULONG)CompilerGTypes[ lc ], g, &ng, ( struct TagItem * )&CompilerGTags[ tc ] );
-
- while( CompilerGTags[ tc ] ) tc += 2;
- tc++;
-
- if ( NOT g )
- return( 2L );
- }
-
- CompilerZoom[0] = CompilerLeft;
- CompilerZoom[1] = CompilerTop;
- CompilerZoom[2] = TextLength( &Scr->RastPort, (UBYTE *)CompilerWdt, strlen((char *)CompilerWdt )) + 80;
- CompilerZoom[3] = Scr->WBorTop + Scr->RastPort.TxHeight + 1;
-
- if ( ! ( CompilerWnd = OpenWindowTags( NULL,
- WA_Left, wleft,
- WA_Top, wtop,
- WA_Width, ww + OffX + Scr->WBorRight,
- WA_Height, wh + OffY + Scr->WBorBottom,
- WA_IDCMP, MXIDCMP|CHECKBOXIDCMP|BUTTONIDCMP|IDCMP_REFRESHWINDOW|IDCMP_VANILLAKEY|IDCMP_RAWKEY,
- WA_Flags, WFLG_DRAGBAR|WFLG_DEPTHGADGET|WFLG_SMART_REFRESH|WFLG_ACTIVATE,
- WA_Gadgets, CompilerGList,
- WA_Title, CompilerWdt,
- WA_PubScreen, Scr,
- WA_Zoom, CompilerZoom,
- WA_Activate, TRUE,
- TAG_DONE )))
- return( 4L );
-
- GT_RefreshWindow( CompilerWnd, NULL );
-
- if ( ROMVersion >= 39 )
- LendMenus( CompilerWnd , ProjectWnd );
- CompilerRender();
-
- return( 0L );
- }
-
- void CloseCompilerWindow( void )
- {
- if ( CompilerWnd ) {
- CloseWindow( CompilerWnd );
- CompilerWnd = NULL;
- }
-
- if ( CompilerGList ) {
- FreeGadgets( CompilerGList );
- CompilerGList = NULL;
- }
-
- }
-
- int HandleLinkerIDCMP( void )
- {
- struct IntuiMessage *m;
- int (*func)(void);
- BOOL running = TRUE;
-
- while( (LinkerWnd != NULL ) && (m = GT_GetIMsg( LinkerWnd->UserPort )) ) {
-
- CopyMem(( char * )m, ( char * )&LinkerMsg, (long)sizeof( struct IntuiMessage ));
-
- GT_ReplyIMsg( m );
-
- switch ( LinkerMsg.Class ) {
-
- case IDCMP_REFRESHWINDOW:
- GT_BeginRefresh( LinkerWnd );
- GT_EndRefresh( LinkerWnd, TRUE );
- break;
-
- case IDCMP_GADGETUP:
- func = ( void * )(( struct Gadget * )LinkerMsg.IAddress )->UserData;
- running = func();
- break;
- case IDCMP_VANILLAKEY:
- running = LinkerVanillaKey( LinkerMsg.Code );
- break;
- case IDCMP_RAWKEY:
- if ( LinkerMsg.Code == 95 )
- ChargeAide( "WIN_Linker" );
- break;
- }
- }
- return( running );
- }
-
- int OpenLinkerWindow( void )
- {
- struct NewGadget ng;
- struct Gadget *g;
- UWORD lc, tc;
- UWORD wleft = LinkerLeft, wtop = LinkerTop, ww, wh;
-
- ComputeFont( LinkerWidth, LinkerHeight );
-
- ww = ComputeX( LinkerWidth );
- wh = ComputeY( LinkerHeight );
-
- if (( wleft + ww + OffX + Scr->WBorRight ) > Scr->Width ) wleft = Scr->Width - ww;
- if (( wtop + wh + OffY + Scr->WBorBottom ) > Scr->Height ) wtop = Scr->Height - wh;
-
- if ( ! ( g = CreateContext( &LinkerGList )))
- return( 1L );
-
- for( lc = 0, tc = 0; lc < Linker_CNT; lc++ ) {
-
- CopyMem((char * )&LinkerNGad[ lc ], (char * )&ng, (long)sizeof( struct NewGadget ));
-
- ng.ng_VisualInfo = VisualInfo;
- ng.ng_TextAttr = Font;
- ng.ng_LeftEdge = OffX + ComputeX( ng.ng_LeftEdge );
- ng.ng_TopEdge = OffY + ComputeY( ng.ng_TopEdge );
- ng.ng_Width = ComputeX( ng.ng_Width );
- ng.ng_Height = ComputeY( ng.ng_Height);
-
- LinkerGadgets[ lc ] = g = CreateGadgetA((ULONG)LinkerGTypes[ lc ], g, &ng, ( struct TagItem * )&LinkerGTags[ tc ] );
-
- while( LinkerGTags[ tc ] ) tc += 2;
- tc++;
-
- if ( NOT g )
- return( 2L );
- }
-
- LinkerZoom[0] = LinkerLeft;
- LinkerZoom[1] = LinkerTop;
- LinkerZoom[2] = TextLength( &Scr->RastPort, (UBYTE *)LinkerWdt, strlen((char *)LinkerWdt )) + 80;
- LinkerZoom[3] = Scr->WBorTop + Scr->RastPort.TxHeight + 1;
-
- if ( ! ( LinkerWnd = OpenWindowTags( NULL,
- WA_Left, wleft,
- WA_Top, wtop,
- WA_Width, ww + OffX + Scr->WBorRight,
- WA_Height, wh + OffY + Scr->WBorBottom,
- WA_IDCMP, BUTTONIDCMP|CHECKBOXIDCMP|IDCMP_REFRESHWINDOW|IDCMP_VANILLAKEY|IDCMP_MENUPICK|IDCMP_RAWKEY,
- WA_Flags, WFLG_DRAGBAR|WFLG_DEPTHGADGET|WFLG_SIZEBBOTTOM,
- WA_Gadgets, LinkerGList,
- WA_Title, LinkerWdt,
- WA_PubScreen, Scr,
- WA_Zoom, LinkerZoom,
- WA_Activate, TRUE,
- TAG_DONE )))
- return( 4L );
-
- GT_RefreshWindow( LinkerWnd, NULL );
-
- if ( ROMVersion >= 39 )
- LendMenus( LinkerWnd , ProjectWnd );
-
- return( 0L );
- }
-
- void CloseLinkerWindow( void )
- {
- if ( LinkerWnd ) {
- CloseWindow( LinkerWnd );
- LinkerWnd = NULL;
- }
-
- if ( LinkerGList ) {
- FreeGadgets( LinkerGList );
- LinkerGList = NULL;
- }
- }
-
- void GenOptRender( void )
- {
- struct IntuiText it;
- UWORD cnt;
-
- ComputeFont( GenOptWidth, GenOptHeight );
-
-
- for ( cnt = 0; cnt < GenOpt_TNUM; cnt++ ) {
- CopyMem(( char * )&GenOptIText[ cnt ], ( char * )&it, (long)sizeof( struct IntuiText ));
- it.ITextFont = Font;
- it.LeftEdge = OffX + ComputeX( it.LeftEdge ) - ( IntuiTextLength( &it ) >> 1 );
- it.TopEdge = OffY + ComputeY( it.TopEdge ) - ( Font->ta_YSize >> 1 );
- PrintIText( GenOptWnd->RPort, &it, 0, 0 );
- }
- }
-
- int HandleGenOptIDCMP( void )
- {
- struct IntuiMessage *m;
- int (*func)(void);
- BOOL running = TRUE;
-
- while( (GenOptWnd != NULL) && (m = GT_GetIMsg( GenOptWnd->UserPort) ) ) {
-
- CopyMem(( char * )m, ( char * )&GenOptMsg, (long)sizeof( struct IntuiMessage ));
-
- GT_ReplyIMsg( m );
-
- switch ( GenOptMsg.Class ) {
-
- case IDCMP_REFRESHWINDOW:
- GT_BeginRefresh( GenOptWnd );
- GenOptRender();
- GT_EndRefresh( GenOptWnd, TRUE );
- break;
-
- case IDCMP_VANILLAKEY:
- running = GenOptVanillaKey();
- break;
-
- case IDCMP_RAWKEY:
- if ( GenOptMsg.Code == 95 )
- ChargeAide( "WIN_MainOpt" );
- break;
-
- case IDCMP_MOUSEMOVE:
- case IDCMP_GADGETUP:
- case IDCMP_GADGETDOWN:
- func = ( void * )(( struct Gadget * )GenOptMsg.IAddress )->UserData;
- running = func();
- break;
- }
- }
- return( running );
- }
-
- int OpenGenOptWindow( void )
- {
- struct NewGadget ng;
- struct Gadget *g;
- UWORD lc, tc;
- UWORD wleft = GenOptLeft, wtop = GenOptTop, ww, wh;
-
- ComputeFont( GenOptWidth, GenOptHeight );
-
- ww = ComputeX( GenOptWidth );
- wh = ComputeY( GenOptHeight );
-
- if (( wleft + ww + OffX + Scr->WBorRight ) > Scr->Width ) wleft = Scr->Width - ww;
- if (( wtop + wh + OffY + Scr->WBorBottom ) > Scr->Height ) wtop = Scr->Height - wh;
-
- if ( ! ( g = CreateContext( &GenOptGList )))
- return( 1L );
-
- for( lc = 0, tc = 0; lc < GenOpt_CNT; lc++ ) {
-
- CopyMem((char * )&GenOptNGad[ lc ], (char * )&ng, (long)sizeof( struct NewGadget ));
-
- ng.ng_VisualInfo = VisualInfo;
- ng.ng_TextAttr = Font;
- ng.ng_LeftEdge = OffX + ComputeX( ng.ng_LeftEdge );
- ng.ng_TopEdge = OffY + ComputeY( ng.ng_TopEdge );
- ng.ng_Width = ComputeX( ng.ng_Width );
- ng.ng_Height = ComputeY( ng.ng_Height);
-
- GenOptGadgets[ lc ] = g = CreateGadgetA((ULONG)GenOptGTypes[ lc ], g, &ng, ( struct TagItem * )&GenOptGTags[ tc ] );
-
- while( GenOptGTags[ tc ] ) tc += 2;
- tc++;
-
- if ( NOT g )
- return( 2L );
- }
-
- GenOptZoom[0] = GenOptLeft;
- GenOptZoom[1] = GenOptTop;
- if ( GenOptWdt )
- GenOptZoom[2] = TextLength( &Scr->RastPort, (UBYTE *)GenOptWdt, strlen((char *)GenOptWdt )) + 80;
- else
- GenOptZoom[2] = 80L;
- GenOptZoom[3] = Scr->WBorTop + Scr->RastPort.TxHeight + 1;
-
- if ( ! ( GenOptWnd = OpenWindowTags( NULL,
- WA_Left, wleft,
- WA_Top, wtop,
- WA_Width, ww + OffX + Scr->WBorRight,
- WA_Height, wh + OffY + Scr->WBorBottom,
- WA_IDCMP, CYCLEIDCMP|SLIDERIDCMP|IDCMP_VANILLAKEY|IDCMP_REFRESHWINDOW|IDCMP_MOUSEMOVE|IDCMP_RAWKEY,
- WA_Flags, WFLG_DRAGBAR|WFLG_DEPTHGADGET|WFLG_SMART_REFRESH,
- WA_Gadgets, GenOptGList,
- WA_Title, GenOptWdt,
- WA_PubScreen, Scr,
- WA_Activate, TRUE,
- WA_Zoom, GenOptZoom,
- WA_AutoAdjust, TRUE,
- TAG_DONE )))
- return( 4L );
-
- GT_RefreshWindow( GenOptWnd, NULL );
-
- if ( ROMVersion >= 39 )
- LendMenus( GenOptWnd , ProjectWnd );
-
- GenOptRender();
-
- return( 0L );
- }
-
- void CloseGenOptWindow( void )
- {
- if ( GenOptWnd ) {
- CloseWindow( GenOptWnd );
- GenOptWnd = NULL;
- }
- if ( GenOptGList ) {
- FreeGadgets( GenOptGList );
- GenOptGList = NULL;
- }
- }
-
-